g_print (" %s\n", subcommand->name);
subcommand++;
}
- return subcommand_name == NULL ? 1 : 0;
+
+ if (want_help)
+ ret = TRUE;
+ else
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "No command specified");
+ goto out;
}
subcommand = admin_instutil_subcommands;
g_print (" %s\n", subcommand->name);
subcommand++;
}
- return subcommand_name == NULL ? 1 : 0;
+
+ if (want_help)
+ ret = TRUE;
+ else
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "No command specified");
+ goto out;
}
subcommand = admin_subcommands;
const char *repo_arg = NULL;
gboolean want_help = FALSE;
gboolean skip;
+ gboolean success = FALSE;
int in, out, i;
/* avoid gvfs (http://bugzilla.gnome.org/show_bug.cgi?id=526454) */
if (cmd == NULL)
{
- if (!want_help)
+ if (want_help)
+ {
+ success = TRUE;
+ }
+ else
{
g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_FAILED,
"No command specified");
if (!command->fn (argc, argv, repo, cancellable, &error))
goto out;
+ success = TRUE;
out:
+ g_assert (success || error);
+
if (error)
{
g_propagate_error (res_error, error);